﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace Noris.Schedule.Planning.Pics
{
    /// <summary>
    /// Ikony 22x22 px
    /// </summary>
    public class PicLibrary22
    {
        #region Image EmblemDefault
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku emblem-default.png.
        /// Vrací přímou referenci na objekt v paměti = volání je velice rychlé (pod 1 mikrosekundu), 
        /// ale protože se vrací živá reference, pak zásahy do vráceného objektu se projeví v objektu v paměti = natrvalo.
        /// Případně je možno vyvolat metodu EmblemDefault_Reset(), která zajistí regenerování obrázku z jeho definice.
        /// Bezpečnější je používání property EmblemDefault, která vrací vždy nový objekt.
        /// Pro používání pro Button.Image, kde bude nastavováno Button.Enabled = false; je třeba použít property EmblemDefault_FromFile.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-default.png
        /// </remarks>
        public static System.Drawing.Image EmblemDefault_Cached
        {
            get
            {
                if (_EmblemDefault == null) _EmblemDefault = EmblemDefault;
                return _EmblemDefault;
            }
        }
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku emblem-default.png.
        /// Nelze používat jako Image pro Buttony, kde bude nastavováno Enabled = false (pak dojde k chybě .NET: Ot of memory).
        /// Pak je třeba použít Image EmblemDefault_FromFile.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití EmblemDefault_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property EmblemDefault_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-default.png
        /// </remarks>
        public static System.Drawing.Image EmblemDefault { get { return _ImageCreateFrom(_EmblemDefault_string, null); } }
        /// <summary>
        /// Vrátí obrázek, načtený ze souboru emblem-default.png.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití EmblemDefault_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property EmblemDefault_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-default.png
        /// </remarks>
        public static System.Drawing.Image EmblemDefault_FromFile { get { return _ImageCreateFrom(_EmblemDefault_string, "emblem-default.png"); } }
        /// <summary>
        /// Vygeneruje a vrátí string, který definuje obsah souboru EmblemDefault
        /// </summary>
        /// <returns></returns>
        private static string _EmblemDefault_string()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder(2292);
            sb.Append("iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3XAAAN1wFCKJt4AAAACXZwQWcAAAAWAAAAFgDcxelYAAAE");
            sb.Append("yUlEQVQ4y7WUa2xURRiGnznn7KW72wutQGlLkcql0Au21tCQAIoBbxgQREJCFFM1WoyJ/KgKUSAmEhNF5I/BpAmIJCCYACHxEjCITUMFii0tLVLb0tLQK9vtdrvbs+fM");
            sb.Append("+GOXtSjyz0kmX3LmzPO9833zjlBK8X8M478WSisMB/AMgoVC8BiKYsBG0KAkZ4HzwA/11Za8135xL8WlFUaREBwtmr0wpyS/PKlgZplWkFuOQHC1u47mjguyrumXcEvH");
            sb.Append("5TYlWVdfbV2/L7i0wtAQbPW5k7duWrXFPTe3WFzpOcetQBvd/hYchovc9PnkpM2hZMZy6q6elvtPfB4Jj4e31Vdbe+4Hfi8vZ94Hr66u8vzRd4EzrQdRuoluCDRdgACl");
            sb.Append("QNkKB15WFlWSnTqHvYe3j3X3tlfWV1sH/gUurTDy3S7PpS0bP/acbvqarkAThkugOwWGQ6AZAhEH25bCNhWWqSjIXMKivDUcrttlj4wNrT1VFTgBoMWhOoJvn1r0QlJL");
            sb.Append("z3k6hq4g9JhK3RDoDoHhFBhuLRYdsW+6IfCHe1mQ/Tirit7WnW7t0M6dQkuAgSemT8l7KHNylqhpPYEQAqGB0EDTY2p1p4bDpaE7NTRdIDRBUc5idm84S7I7nUeyV+Jz");
            sb.Append("T/LU6t7XJ4LLsibPcF7rqceS0ViNJjRiUtI0hIglurO4dNYGdjx3Eq8rFQClFPMzluH0aOsTYCFYmpaSYfT5u0HFflIqVs8V+a/xxapGyjJXE41IpKVYW/g+by3Zh645");
            sb.Append("sG0b27aRUrLggaeFPepInmiQkmRPKv2dPSgBSoKGg8qle1hRsAmAN8v3MXY2yKIH17E4b33iNKZpEo1GCYb9tA9dprcrkPY3WCDHzXGkrZBCIW1YU/JOAgpgaE7eXXbs");
            sb.Append("LhNIKYlEItwcauOrc1Vkpc0GkBNKIer7h3tIcWcgLZAWHK79lJ+bjtz3PQiFQjR01vDRiReJ2iZ9gz0AdQmwtNW54dCA5XGmxu5oVGFGonxyvILv6/cj5d3PgWmajIyM");
            sb.Append("cKbxCLtObiQQ8uNxpDA43BdBUTOxxhcHhnojxfmlvvbeZuyojHfa4rNTlYyOBXmy+OXE8aPRKMd+28PRut1YpkTHhc+VTrO/QQKXJoLPDAeHWoeCvaV52flaW3czSoEm");
            sb.Append("Qdo2X/5YxchIgOWFLxG1TPb/+iHnrn2HtGL9mJVVyI3e61YoEqytr7Yu/tPSeYZhNC58tNzb2dNG/0AfmkHcDCAEPLvgDf7su0zLrTqUBGkrJidPJ3tKLhev1Aai4zL/");
            sb.Append("9wNWbwIshBCAKHlF35KSlryjsLDQOxIcpuNmG2bYSoDvDKVAFw5m5szB5/XR1NoYCvrHNjd+Yx8CbKWUmgg2dBeeec/rm5NSjG2z5850T0pP0/yB24RCIcbCIVACj9uL");
            sb.Append("J8lHWko6A4MDdmd75/jooNzRetw+CISAMGDfAWuAA/ACyVOLRMG0Un2vL8WTkzEl1UhO8elerwcpFaOhEKOBkLw9MGwF/eGuGzVye6BLNQAj8TkGWBMV64AL8ABezSAz");
            sb.Append("82FtpTuVMk+GmO/wiqlKocygGgwNqOvh26qhv0n9BHQBw3G1Y0BUKSUTzYvDtXgCA3DGpxtIiicVgAmMx2M4HqOAFXedUkqpvwAfZzwGwkPhlAAAACV0RVh0Y3JlYXRl");
            sb.Append("LWRhdGUAMjAwOS0xMS0xNVQyMzowNDowOS0wNzowMOh51zsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTAtMDEtMTFUMDk6MDk6MjYtMDc6MDCVrk2EAAAAJXRFWHRkYXRl");
            sb.Append("Om1vZGlmeQAyMDEwLTAxLTExVDA5OjA5OjI2LTA3OjAw5PP1OAAAADR0RVh0TGljZW5zZQBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9HUEwvMi4w");
            sb.Append("L2xqBqgAAAAldEVYdG1vZGlmeS1kYXRlADIwMDktMTEtMTVUMjM6MDQ6MDktMDc6MDC3yKEPAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAABd0");
            sb.Append("RVh0U291cmNlAEdOT01FIEljb24gVGhlbWXB+SZpAAAAIHRFWHRTb3VyY2VfVVJMAGh0dHA6Ly9hcnQuZ25vbWUub3JnLzLkkXkAAAAASUVORK5CYII=");
            return sb.ToString();
        }
        /// <summary>
        /// Resetuje obrázek v paměti.
        /// Následující použití property EmblemDefault_Direct si vytvoří nový, korektní - podle jeho originální deklarace.
        /// Tuto metodu je vhodné použít v situaci, kdy je správnost obrázku v paměti nejistá.
        /// </summary>
        public static void EmblemDefault_Reset()
        {
            _EmblemDefault = null;
        }
        /// <summary>
        /// Úložiště objektu v paměti, při prvním použití EmblemDefault_Direct je objekt naplněn a následně využíván.
        /// </summary>
        private static System.Drawing.Image _EmblemDefault = null;
        #endregion
        #region Image EmblemImportant
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku emblem-important.png.
        /// Vrací přímou referenci na objekt v paměti = volání je velice rychlé (pod 1 mikrosekundu), 
        /// ale protože se vrací živá reference, pak zásahy do vráceného objektu se projeví v objektu v paměti = natrvalo.
        /// Případně je možno vyvolat metodu EmblemImportant_Reset(), která zajistí regenerování obrázku z jeho definice.
        /// Bezpečnější je používání property EmblemImportant, která vrací vždy nový objekt.
        /// Pro používání pro Button.Image, kde bude nastavováno Button.Enabled = false; je třeba použít property EmblemImportant_FromFile.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-important.png
        /// </remarks>
        public static System.Drawing.Image EmblemImportant_Cached
        {
            get
            {
                if (_EmblemImportant == null) _EmblemImportant = EmblemImportant;
                return _EmblemImportant;
            }
        }
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku emblem-important.png.
        /// Nelze používat jako Image pro Buttony, kde bude nastavováno Enabled = false (pak dojde k chybě .NET: Ot of memory).
        /// Pak je třeba použít Image EmblemImportant_FromFile.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití EmblemImportant_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property EmblemImportant_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-important.png
        /// </remarks>
        public static System.Drawing.Image EmblemImportant { get { return _ImageCreateFrom(_EmblemImportant_string, null); } }
        /// <summary>
        /// Vrátí obrázek, načtený ze souboru emblem-important.png.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití EmblemImportant_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property EmblemImportant_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-important.png
        /// </remarks>
        public static System.Drawing.Image EmblemImportant_FromFile { get { return _ImageCreateFrom(_EmblemImportant_string, "emblem-important.png"); } }
        /// <summary>
        /// Vygeneruje a vrátí string, který definuje obsah souboru EmblemImportant
        /// </summary>
        /// <returns></returns>
        private static string _EmblemImportant_string()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder(1844);
            sb.Append("iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA");
            sb.Append("OpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAl2cEFnAAAAFgAAABYA3MXpWAAAA6tJREFUOMul1UtoXFUcx/HvOfc1zzt5");
            sb.Append("dJ5pOnmYmj5samutbUqhIIpWhFKC0KkSdWPdVHBhRZFCNy4UlVILrgVB6krEpRTBhdpMR9sSImqqnTTJJOkknWRe957jIqUg9jGNP/hvzuPD/8A5HGgx+aPszR8lp0G0");
            sb.Append("st5sZVFh1D4ZHtx3wulIi1/tr47rDbUnxEnU/4ILOdYH+3aeyD71qiOkQDXr28Z+OHcE+Pxe++R92w1GPkgOv2BRLaFK4yQee9Yxw+5Hl0ew1wwXjvJweGDvoVAyK9XS");
            sb.Append("FLpWxjQN4rsPx2o2r68Z1gH3TGrP85YuTyKEQFhBdGmczqEDlhXtPHV5hMgDw/kcu9zB4X1OtE3ouQlERzfGhiF0ZQZRL5PYc8hpBDjxwLAMuWcT2w/YeuYSaB8j0YuI");
            sb.Append("JhCRDvR0nvaBHZbppt4ce5l4y/DYSzwZHnh8qxOwhJqbwEj2MzW3xF9Ts+j0ZvTyPOLmNZK7njZpcqolWIMQTvRscvNux7+eR0iJXJflzBff8/bHX+PbIURbGnX9Im73");
            sb.Append("gGm3pUbHjpC9L5zPcTjW/2iXY3rohT+QXYOgGsRCElP6BGQTc/0WdK2MWPiN5Pb9JgYf3hP+cgRDBkKfrOvfElTFMaQdQHZk0H6VdRGJGxBorwa2jYxnUdcLRBNpw46l");
            sb.Append("DhZeZOtd4X6bV9wNm9odtYgqX8VYvwn8KnhV4q6BGxLgr4C3jJHuQy8V0VfPk+jtsRWcviP83SgBw7bej/f0BVUxjwy7iLZO8KrgVejtVDj+DahMwXIRoVYwMr2o6UtE");
            sb.Append("OzqkEW7fnc8x/B845nHcTfUEzfoseqmIkelH1+ahOgPLM2xJa44dzK6ewG+CaiCz2xCmiS5dIbNxY0BLPv0X/PMIMSHku/HuTFAVLyAiLiIcguYK2quhVYNn3vqWA298");
            sb.Append("w0K5glYNtGoiJBi9Q+jyVcJhSzhu58CFHM/dhoXDO26m2zLrs9CsYPY9Aqp5u7Tf5ObKavl+Y3XcX50zuh5COCH03ATpvp6glJzWJ5Hix1FStjb+7N+5IyBLvyCjMaxt");
            sb.Append("+0EYIORqIfAUNDxFyDFA69UbrxVohff3OP7vBWR6iMmJayvVxfnXTNnkmJtql0bjBtqro27MUj9/7o7P3ADq3D16qUgy1RaaXJx/z6w0iMQtxxZWEBEfvNXNGiIEGBb+");
            sb.Append("4jJKY5sXZjgftIoj81NTKWlYam3qrY59D1+p+k/TfCaAuAV9w13EtdHaR3mvXJllsVTj2j8LVmXuavcomAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMC0wMS0xMVQwOTox");
            sb.Append("Mjo1OS0wNzowMFBNEEMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTAtMDEtMTFUMDk6MTI6NTktMDc6MDAhEKj/AAAANHRFWHRMaWNlbnNlAGh0dHA6Ly9jcmVhdGl2ZWNv");
            sb.Append("bW1vbnMub3JnL2xpY2Vuc2VzL0dQTC8yLjAvbGoGqAAAABN0RVh0U291cmNlAEdOT01FLUNvbG9yc6qZROIAAAAxdEVYdFNvdXJjZV9VUkwAaHR0cDovL2NvZGUuZ29v");
            sb.Append("Z2xlLmNvbS9wL2dub21lLWNvbG9ycy9QHbXrAAAAAElFTkSuQmCC");
            return sb.ToString();
        }
        /// <summary>
        /// Resetuje obrázek v paměti.
        /// Následující použití property EmblemImportant_Direct si vytvoří nový, korektní - podle jeho originální deklarace.
        /// Tuto metodu je vhodné použít v situaci, kdy je správnost obrázku v paměti nejistá.
        /// </summary>
        public static void EmblemImportant_Reset()
        {
            _EmblemImportant = null;
        }
        /// <summary>
        /// Úložiště objektu v paměti, při prvním použití EmblemImportant_Direct je objekt naplněn a následně využíván.
        /// </summary>
        private static System.Drawing.Image _EmblemImportant = null;
        #endregion
        #region Image EmblemNotice
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku emblem-notice.png.
        /// Vrací přímou referenci na objekt v paměti = volání je velice rychlé (pod 1 mikrosekundu), 
        /// ale protože se vrací živá reference, pak zásahy do vráceného objektu se projeví v objektu v paměti = natrvalo.
        /// Případně je možno vyvolat metodu EmblemNotice_Reset(), která zajistí regenerování obrázku z jeho definice.
        /// Bezpečnější je používání property EmblemNotice, která vrací vždy nový objekt.
        /// Pro používání pro Button.Image, kde bude nastavováno Button.Enabled = false; je třeba použít property EmblemNotice_FromFile.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-notice.png
        /// </remarks>
        public static System.Drawing.Image EmblemNotice_Cached
        {
            get
            {
                if (_EmblemNotice == null) _EmblemNotice = EmblemNotice;
                return _EmblemNotice;
            }
        }
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku emblem-notice.png.
        /// Nelze používat jako Image pro Buttony, kde bude nastavováno Enabled = false (pak dojde k chybě .NET: Ot of memory).
        /// Pak je třeba použít Image EmblemNotice_FromFile.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití EmblemNotice_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property EmblemNotice_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-notice.png
        /// </remarks>
        public static System.Drawing.Image EmblemNotice { get { return _ImageCreateFrom(_EmblemNotice_string, null); } }
        /// <summary>
        /// Vrátí obrázek, načtený ze souboru emblem-notice.png.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití EmblemNotice_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property EmblemNotice_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-notice.png
        /// </remarks>
        public static System.Drawing.Image EmblemNotice_FromFile { get { return _ImageCreateFrom(_EmblemNotice_string, "emblem-notice.png"); } }
        /// <summary>
        /// Vygeneruje a vrátí string, který definuje obsah souboru EmblemNotice
        /// </summary>
        /// <returns></returns>
        private static string _EmblemNotice_string()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder(2236);
            sb.Append("iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAEnSAABJ0gGoRYr4AAAACXZwQWcAAAAWAAAAFgDcxelYAAAE");
            sb.Append("1klEQVQ4y2VUTWhcVRT+zr33/cxkJpn8TtqkqWm1VpsWq1WwVhGlGwvSgisRV7pwIehGEHEn7oq6UtCFVrsUwY1EFyr+LYQ2Eqyt/Utr2ibNZJL5ffPeu/ccF/MaJ/HA");
            sb.Append("x73w3v2+75x7ziX0xOArX2HtwxO499Wvg5Hx8lSpUHisL8w95Xneg1rrbSDSzLxqrfszjpMfm1H0w2qtfuHM/Hzr4MyMnH3nyAYXbexe+Bz44iRm3npvYHJk9Mhgf/G5");
            sb.Append("XC5/WHveBJQKmUgBBIiARBKxdiWNk7lmq/1VZb0+O3/571tT5XH+490nthDjGPa//cbIztGx40Ol0kt+Lv8Aax0wAAGgqAsngAigiKCYHcfJQqvZPl1ZW//sr6uXFmIH");
            sb.Append("rn58AhoAdrz5M8qPPlTcWR4/Pjo09JrfVzholTacSeY8wn0jGntGNFiAZiJgAZhIKWOGPG32GFIu8IML53/5qYF/vocGDsPs26fvnph8eGxo+PWwUDhktVKSkQqAnSWF");
            sb.Append("Z/f6OLTdQCnC1TVG7LrpCgClddGQnoBgMRgZu1h45PlUAb+iPDw23F8oHMv15R92WmkRbAoCoFUXhgCizd8dASrwpvO5/PHRUmnaMpPOvXBK37V9Yv/o4ODLfj6/22HL");
            sb.Append("KQFiBzRiwWKdMb/MWGkxtmgDihQEBWftOY6iv9Xk9gmTD4J7PT+YFlKbnRKwrUi4e0iBANSirpJR+F8IADJ61PP8A9oPCiawNvA8b1JrXeQ7RdswAewa0nh8ymAgVBAR");
            sb.Append("nK8wllsJGjFDK4JSPa2lVKCU2WG8oF85EUNERRAZbCkuC3BtjXFx1SHvAeNFhbwPVCPGrZZgpS1oxEDKd/wQgaigNYWGiIQZzCxQW0hTJzhXcXAADowbFHyCdUArBeqx");
            sb.Append("wChBIyH0eYRiQPBExLEws7BhkqST2kon4dh4CFmAlAWRFbRTQWSBckHBZq5ki3jiBJYF7ZTQp4SVtaupS1umkSZpMY6v1qJklcUfSNF1arl70AnAvOWitrRENzvAOtdS");
            sb.Append("1l5itjV1c/Fy2u5EFzqdzp9J4riVCGKXjS6A0BD6Q8DLLik0QH9A8PRmckMC49LrNumctUkcKRGRRrN2rRM1Z7XtLHs9bawImBlTeHqXh8EcgQBMDSgc3e1hol9tlEUB");
            sb.Append("CMRFnHZ+aEfN+blvTqUa52dRK06npfKOWmD8cd/z97AyPmd9vHtIY3pQo9oWXK8zKu1u/a9UGZVIoEDIkVg/jX7rtOsfrVRunKtWbrHpSorcqFauGFKfDhAGc/nS0Vj7");
            sb.Append("fSkIc0sOV9cZqieT1AHrHYFHhFCc9eL2mU6z+sl6del3t37T4qeTm+ZXBTPPFHc+9vzh4cm9LwYD5SclKIwlpFUqwJ37IwCagAAMY+OatKpnmrcXTi/OzX6z9N37twE4");
            sb.Append("AKJ7/g/c7Yv+6sVf62kSLRKwpsHig72ARIcQhOLY5yTx4sa61JcvtG6e/3Z5/rsvr8x+8Pv63NeNrBsdAKGe+vsA8nfgl+8ZLu06NFWYuH86HNg2YcK+ASKlXNppJfWV");
            sb.Append("pfbypYXawpmFxvU/bsPGTQARgHa2ut5SaAABgDBDACCksJgz+cGcDnI+gYhtbNN2rcOtahtAB0CcrVG2t72O0ePcZAiyLEwmSvjvbXcZkowszbAxnP8CNGhmAdUnLysA");
            sb.Append("AAAldEVYdGRhdGU6Y3JlYXRlADIwMTAtMDEtMTFUMDg6NTk6MjQtMDc6MDCu8ClqAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDEwLTAxLTExVDA4OjU5OjI0LTA3OjAw362R");
            sb.Append("1gAAADN0RVh0TGljZW5zZQBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvVvf6HAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9y");
            sb.Append("Z5vuPBoAAAAadEVYdFNvdXJjZQBUYW5nbyBoYXJtLW9uLWljb25zBTECsgAAAEp0RVh0U291cmNlX1VSTABodHRwOi8vZ25vbWUtbG9vay5vcmcvY29udGVudC9zaG93");
            sb.Append("LnBocC9UYW5nbyttaW5lP2NvbnRlbnQ9NzYzMTaO2nU5AAAAAElFTkSuQmCC");
            return sb.ToString();
        }
        /// <summary>
        /// Resetuje obrázek v paměti.
        /// Následující použití property EmblemNotice_Direct si vytvoří nový, korektní - podle jeho originální deklarace.
        /// Tuto metodu je vhodné použít v situaci, kdy je správnost obrázku v paměti nejistá.
        /// </summary>
        public static void EmblemNotice_Reset()
        {
            _EmblemNotice = null;
        }
        /// <summary>
        /// Úložiště objektu v paměti, při prvním použití EmblemNotice_Direct je objekt naplněn a následně využíván.
        /// </summary>
        private static System.Drawing.Image _EmblemNotice = null;
        #endregion
        #region Image EmblemUrgent
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku emblem-urgent.png.
        /// Vrací přímou referenci na objekt v paměti = volání je velice rychlé (pod 1 mikrosekundu), 
        /// ale protože se vrací živá reference, pak zásahy do vráceného objektu se projeví v objektu v paměti = natrvalo.
        /// Případně je možno vyvolat metodu EmblemUrgent_Reset(), která zajistí regenerování obrázku z jeho definice.
        /// Bezpečnější je používání property EmblemUrgent, která vrací vždy nový objekt.
        /// Pro používání pro Button.Image, kde bude nastavováno Button.Enabled = false; je třeba použít property EmblemUrgent_FromFile.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-urgent.png
        /// </remarks>
        public static System.Drawing.Image EmblemUrgent_Cached
        {
            get
            {
                if (_EmblemUrgent == null) _EmblemUrgent = EmblemUrgent;
                return _EmblemUrgent;
            }
        }
        /// <summary>
        /// Vrátí obrázek, vytvořený na základě obrázku emblem-urgent.png.
        /// Nelze používat jako Image pro Buttony, kde bude nastavováno Enabled = false (pak dojde k chybě .NET: Ot of memory).
        /// Pak je třeba použít Image EmblemUrgent_FromFile.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití EmblemUrgent_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property EmblemUrgent_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-urgent.png
        /// </remarks>
        public static System.Drawing.Image EmblemUrgent { get { return _ImageCreateFrom(_EmblemUrgent_string, null); } }
        /// <summary>
        /// Vrátí obrázek, načtený ze souboru emblem-urgent.png.
        /// Vrací vždy novou instanci = volání je při častém používání výrazně (až 1000krát) pomalejší než použití EmblemUrgent_Cached
        /// (kde ale hrozí nebezpečí pokažení obrázku v paměti).
        /// Čas pro vytvoření jednoho Image (tj. každé jednotlivé čtení této property) pro obrázek velikosti 32x32 px (32bpp) je průměrně 350 mikrosekund.
        /// Pokud je třeba používat obrázek často a rychle, je možné využít property EmblemUrgent_Cached.
        /// </summary>
        /// <remarks>
        /// Plné jméno vstupního souboru:
        /// C:\LCS\Tools\GreenSchedule4\Planning\pic\22\emblem-urgent.png
        /// </remarks>
        public static System.Drawing.Image EmblemUrgent_FromFile { get { return _ImageCreateFrom(_EmblemUrgent_string, "emblem-urgent.png"); } }
        /// <summary>
        /// Vygeneruje a vrátí string, který definuje obsah souboru EmblemUrgent
        /// </summary>
        /// <returns></returns>
        private static string _EmblemUrgent_string()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder(2124);
            sb.Append("iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3XAAAN1wFCKJt4AAAACXZwQWcAAAAWAAAAFgDcxelYAAAE");
            sb.Append("TElEQVQ4y42Vy2vcVRTHP+f+3pnpdJo0JmKgdSGlVCpFW2gsigsVdKlVMUXRnf9AK7gvqGsfIG6E8QGCCK5EBBV1J4FSfGOpWu0jycz4m+SX3++ee1zMJKaI0guHC/fx");
            sb.Append("Oefcc/heMTNuZPREcoAls+pGzst/gXsiu4EnIzghcFxhASCCX4GvPXwBvLtkNrhhcE/kAQe9+b17i9lOp9XJc1ppinhPORzSH424MhqV16qqUlhaMvv4f8E9kSKC1+Is");
            sb.Append("e+SOQ4fae7pdos1NnAgSxzhAqgqtKnQ45MrqKueGw5EP4X2F55bMNrZY8U4vDl6dnZ9//OCRI3m8sYFsbOCcwzlHef/9FMvL5FevImmKtFrMxjHHnWudGwwe76sa8MwO");
            sb.Append("1j/pp3l+8sCxY7n0+zAaISEgIaCqZE8/xWBxEbzHqSIh4PbsIZ2f50BR5A4e64k8cB24J9J18PbBo0dbDIeEqsJCgAkYVZLOLrTdwnmPqI4tBKQoSDsdbkvTKQdvT4q+");
            sb.Append("HfGjexcWptrT0/iVFZjATJXgPcF7zCCEgN9am+yjipuZoZumdCADHt0GO7i3OzdX+LW17UtbF8MEBBOw9+gOC6oEM6zVYpdI28GJncVbLKan0dVVnCoBCCJoCCBCDaQY");
            sb.Append("sns3tffEZgRAzVCzMThJyAGBRQDXEykC7CtmZtCyRFUJTYN6j/ee2nvKkycBmHv4Ifp3L1Kr/ityiyJSIMCtPZHEAQqYqqIiqCp+YqpK4z3h0EHMDDOjWVyk9p5m4tir");
            sb.Append("juEhEMbZGxDiJbP6HZGfR6urB1xVES5dIokioijCRxGSJKy98SYzR4+SFlPsvecEl6enyb//HtuCquLNGI3r9eMTZuomLr4Yrawg3S6+rmmqimZ9naYsCf0+ez79lJ9u");
            sb.Append("P8yvH31EvFFRPH+GqizxoxG+qmjqGg2BdTML8Pl2Vxh8tnbp0ijet4+Qptgk0ijPiYqCZGqKuSjCnT7DxRdfwl24gGQZpCkhitBJdiX8ZfDltlb0RFKBb/ffddetbRB/");
            sb.Append("/jytLCPNMpIoQpzDiWAiWAh4M/CeummoqopGhJW6tqtN84vBwSWz2k00tjZ45OLy8rp0u2Rzc0RpOgbn+XjOMtI0Jc1ziiwjzXPiNMUVBU0UseJ9dRlOLZnV12nFKTg3");
            sb.Append("CuH1C998U3HLLbibbqIJYdwBqjRb3TJpwVoVjWPqOObPqtq8IvLWC/CbiBTXyaaIFAswezqKziwkybML+/dnnU5HGAyQzU2krmHyHEGEEEUMytIuD4fND6rvnVV9ZQDX");
            sb.Append("gBUz6+8EJ8D0DEw/lKZ3Pqh6dle7Pbur3U7yPI+SJMFUqdfXqaoqlOvrftA01z4QefmTplnehLUG1oA/zay+Tui34Bns7iZJ9zHV+24WOTxjdkcL9gOUcPEPkfO/m333");
            sb.Append("ochXpepwAwaMoVfMrPnPr2nioJ1DN0BhkCUQGzgBa0AF6hpKoA+MbFK0rfE3AamVyqCbj4YAAAAldEVYdGNyZWF0ZS1kYXRlADIwMDktMTEtMTVUMjM6MDQ6MDktMDc6");
            sb.Append("MDDoedc7AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEwLTAxLTExVDA5OjA5OjI3LTA3OjAwM9lGMAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMC0wMS0xMVQwOTowOToyNy0w");
            sb.Append("NzowMEKE/owAAAA0dEVYdExpY2Vuc2UAaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvR1BMLzIuMC9sagaoAAAAJXRFWHRtb2RpZnktZGF0ZQAyMDA5");
            sb.Append("LTExLTE1VDIzOjA0OjA5LTA3OjAwt8ihDwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAXdEVYdFNvdXJjZQBHTk9NRSBJY29uIFRoZW1lwfkm");
            sb.Append("aQAAACB0RVh0U291cmNlX1VSTABodHRwOi8vYXJ0Lmdub21lLm9yZy8y5JF5AAAAAElFTkSuQmCC");
            return sb.ToString();
        }
        /// <summary>
        /// Resetuje obrázek v paměti.
        /// Následující použití property EmblemUrgent_Direct si vytvoří nový, korektní - podle jeho originální deklarace.
        /// Tuto metodu je vhodné použít v situaci, kdy je správnost obrázku v paměti nejistá.
        /// </summary>
        public static void EmblemUrgent_Reset()
        {
            _EmblemUrgent = null;
        }
        /// <summary>
        /// Úložiště objektu v paměti, při prvním použití EmblemUrgent_Direct je objekt naplněn a následně využíván.
        /// </summary>
        private static System.Drawing.Image _EmblemUrgent = null;
        #endregion
        #region SPOLEČNÉ METODY PRO KONVERZI
        /// <summary>
        /// Vrátí Image z definice (string). Image generuje buď v paměti, anebo s pomocí souboru.
        /// Pokud není zadán parametr (cacheFileName) (když je null), generuje se Image v paměti.
        /// Pokud je soubor (cacheFileName) definován, pak se Image čte z něj.
        /// Pokud soubor neexistuje, nejprve se vytvoří.
        /// Umístění souboru (adresář) je dán property _ImageCacheDir, defaultně je to adresář (Sys:\Documents and Settings\All Users\Data aplikací\IconCache).
        /// Obsah obrázku definuje metoda getDataMethod.
        /// </summary>
        /// <param name="getDataMethod"></param>
        /// <param name="cacheFileName"></param>
        /// <returns></returns>
        private static System.Drawing.Image _ImageCreateFrom(_GetStringDelegate getDataMethod, string cacheFileName)
        {
            System.Drawing.Image image;
            if (cacheFileName == null)
            {
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream(Convert.FromBase64String(getDataMethod())))
                {
                    image = System.Drawing.Image.FromStream(ms);
                }
                return image;
            }
            string fileName = System.IO.Path.Combine(_ImageCacheDir, cacheFileName);
            if (!System.IO.File.Exists(fileName))
                System.IO.File.WriteAllBytes(fileName, Convert.FromBase64String(getDataMethod()));
            if (System.IO.File.Exists(fileName))
                return Image.FromFile(fileName);
            return null;
        }
        /// <summary>
        /// Obsahuje jméno adresáře, který slouží jako Cache pro obrázky systému.
        /// </summary>
        private static string _ImageCacheDir
        {
            get
            {
                string dirName = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData), "GreenScheduler\\Planning22");
                if (!System.IO.Directory.Exists(dirName))
                    System.IO.Directory.CreateDirectory(dirName);
                return dirName;
            }
        }
        /// <summary>
        /// Předpis pro metody, které generují obsah souboru s daty
        /// </summary>
        /// <returns></returns>
        private delegate string _GetStringDelegate();
        /// <summary>
        /// Vrátí Icon z dat (string), která jsou předána na vstup v kódování Base64
        /// </summary>
        /// <param name="data">Vstupní data v kódování Base64</param>
        /// <returns>Icon vytvořená z dat</returns>
        public static System.Drawing.Icon ConvertStringToIcon(string data)
        {
            System.Drawing.Icon icon;
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream(Convert.FromBase64String(data)))
            {
                icon = new System.Drawing.Icon(ms);
            }
            return icon;
        }
        /// <summary>
        /// Vrátí Cursor z dat (string), která jsou předána na vstup v kódování Base64
        /// </summary>
        /// <param name="data">Vstupní data v kódování Base64</param>
        /// <returns>Cursor vytvořený z dat</returns>
        public static System.Windows.Forms.Cursor ConvertStringToCursor(string data)
        {
            System.Windows.Forms.Cursor cursor;
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream(Convert.FromBase64String(data)))
            {
                cursor = new System.Windows.Forms.Cursor(ms);
            }
            return cursor;
        }
        #endregion
    }
}
